package map;

import java.util.HashMap;
import java.util.Map;

/**
 * 统计字符串中每个字符出现的次数
 * 思路:
 * 用一个Map保存统计结果，key保存出现的字符，value保存该字符出现的次数
 * 利用个字符窜的charAt方法可以便利字符串中每一个字符
 * 如果Map中该字符不存在，则存入，并且对应的次数为1
 * 如果Map中该字符已经存在，则根据该字符作为key提取其value（出现的次数）并对value+1再存回
 * 遍历有输出map即可得知每个字符出现的次数。
 */
public class Test {
    public static void main(String[] args) {
        String line = "Thinking in java!i love java!";
        Map<Character , Integer> map = new HashMap<>();
        for (int i = 0; i < line.length(); i++) {
            char c = line.charAt(i);
//            if ( !map.containsKey(c)) {
//               map.put(c,1);
//               continue;
//            }
//            map.put(c,map.get(c)+1);
            map.put(c,map.containsKey(c)?map.get(c)+1:1);//三目运算
        }
        map.forEach((v,k)-> System.out.println(v +":"+k));
    }
}
